package com.db.common.pojo;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 基于此对象实现控制层数据的封装,为业务层的返回结果添加状态信息
 *
 * @author Administrator
 */
@Data
@NoArgsConstructor
public class JsonResult implements Serializable { //注意:此类中的所有属性名,必须按现在定义的名字去写
    private static final long serialVersionUID = 3873802923482755604L;

    /* 用于表示服务端响应到客户端数据的状态码 */
    private Integer state = 1; //1 正确,0 错误

    /* 用于记录状态码对应的状态信息 */
    private String message = "ok"; //消息

    /* 这个属性用于存储业务层返回给控制层的数据,或者是控制层自己封装的数据 */
    private Object data; //业务层要返回的结果(业务层返回给控制层数据不知道什么类型)

    /* 当保存,删除,更新以后,给出一个消息,可以调用此构造函数封装消息,例如:update OK */
    public JsonResult(String message) {
        this.message = message;
    }

    /* 假如希望封装业务层查询到数据,可以使用此构造 */
    public JsonResult(Object data) {
        this.data = data;
    }

    /* 加入希望封装控制层出现的异常信息,可以使用此构造 */
    public JsonResult(Throwable e) {
        this.state = 0;
        this.message = e.getMessage();
    }

}
